import defaultAvatar from '@/assets/img/default.png'

/**
 * 处理头像URL
 * @param {string} avatar - 原始头像URL
 * @param {string} [fallback] - 可选的默认头像URL
 * @returns {string} 处理后的头像URL
 */
export const handleAvatarUrl = (avatar, fallback = defaultAvatar) => {
  if (!avatar) return fallback
  
  try {
    // 如果已经是完整的URL，直接返回
    if (avatar.startsWith('http') || avatar.startsWith('https')) {
      return avatar
    }
    
    // 处理相对路径
    return new URL(avatar, import.meta.url).href
  } catch (error) {
    console.warn('头像URL处理失败:', error)
    return fallback
  }
}

/**
 * 处理头像加载错误
 * @param {Event} event - 图片加载错误事件
 * @param {string} [fallback] - 可选的默认头像URL
 */
export const handleAvatarError = (event, fallback = defaultAvatar) => {
  console.warn('头像加载失败，使用默认头像')
  event.target.src = fallback
}

/**
 * 处理通用图片URL
 * @param {string} imagePath - 原始图片路径
 * @param {string} [fallback] - 可选的默认图片URL
 * @returns {string} 处理后的图片URL
 */
export const handleImageUrl = (imagePath, fallback = '') => {
  if (!imagePath) return fallback;
  
  try {
    // 如果已经是完整的URL，直接返回
    if (imagePath.startsWith('http') || imagePath.startsWith('https')) {
      return imagePath;
    }
    
    // 处理相对路径
    return new URL(imagePath, import.meta.url).href;
  } catch (error) {
    console.warn('图片URL处理失败:', error);
    return fallback;
  }
}